﻿using System;
using System.ComponentModel.DataAnnotations;
using TiaoTaoHelper.Wtm.Models;
using WalkingTec.Mvvm.Core;

namespace HengTong.Model.Db.Hr.Bill;

/// <summary>
/// 用人需求明细
/// </summary>
[Display(Name = "用人需求明细", Description = "用人需求明细表单", GroupName = "人事业务表单")]
public class SysHrStaffNeedRequestBillEntry : BasePoco
{
    // 基本信息
    [Required]
    [Display(Name = "招聘人数", Description = "本岗位计划招聘人数", GroupName = "基本信息")]
    public int HireNumber { get; set; }

    [Required]
    [Display(Name = "申请原因", Description = "提出招聘需求的原因", GroupName = "基本信息")]
    [StringLength(128)]
    public string ApplyReason { get; set; }

    [Display(Name = "到岗时间", Description = "期望人员到岗的时间", GroupName = "基本信息")]
    public DateTime? ExpectedDate { get; set; }

    [Display(Name = "岗位要求", Description = "岗位的具体要求", GroupName = "基本信息")]
    [StringLength(128)]
    public string JobRequirement { get; set; }

    [Display(Name = "学历要求", Description = "最低学历要求", GroupName = "基本信息")]
    public EducationLevel? EducationRequirement { get; set; }

    [Display(Name = "专业要求", Description = "所需专业方向", GroupName = "基本信息")]
    [StringLength(128)]
    public string MajorRequirement { get; set; }

    [Display(Name = "性别要求", Description = "岗位对性别的要求", GroupName = "基本信息")]
    public Gender? GenderRequirement { get; set; }

    [Display(Name = "年龄要求", Description = "岗位对年龄的要求", GroupName = "基本信息")]
    [StringLength(128)]
    public string AgeRequirement { get; set; }

    [Display(Name = "其他要求", Description = "除上述外的其他要求", GroupName = "基本信息")]
    [StringLength(128)]
    public string OtherRequirement { get; set; }

    // 工作信息
    [Display(Name = "人事组织", Description = "关联的人事组织", GroupName = "工作信息")]
    public SysOrg Org { get; set; }

    [Display(Name = "人事组织ID", Description = "关联的人事组织ID", GroupName = "工作信息")]
    public Guid? OrgId { get; set; }

    [Display(Name = "所属部门", Description = "关联的部门", GroupName = "工作信息")]
    public SysGroup Group { get; set; }

    [Display(Name = "所属部门ID", Description = "关联的部门ID", GroupName = "工作信息")]
    public Guid? GroupId { get; set; }

    [Display(Name = "工作岗位", Description = "关联的工作岗位", GroupName = "工作信息")]
    public SysJobPosition JobPosition { get; set; }

    [Display(Name = "工作岗位ID", Description = "关联的工作岗位ID", GroupName = "工作信息")]
    public Guid? JobPositionId { get; set; }

    // 关联信息
    [Display(Name = "主表ID", Description = "关联的用人申请单ID", GroupName = "关联信息")]
    public Guid? HrStaffNeedId { get; set; }

    [Display(Name = "主表", Description = "关联的用人申请单", GroupName = "关联信息")]
    public SysHrStaffNeedRequestBill HrStaffNeed { get; set; }
}